/**
 * This file is part of Sonedyan.
 * 
 * Sonedyan is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public
 * License as published by the Free Software Foundation;
 * either version 3 of the License, or (at your option) any
 * later version.
 *
 * Sonedyan is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied
 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 * PURPOSE.  See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public
 * License along with Octave; see the file COPYING.  If not
 * see <http://www.gnu.org/licenses/>.
 * 
 * Copyright (C) 2009-2012 Jimmy Dubuisson <jimmy.dubuisson@gmail.com>
 */

package org.unige.mpej.eckmann.sonedyan.enron.bean;

import java.util.Vector;
import org.unige.mpej.eckmann.sonedyan.bean.Vertex;

/**
 * Actor 
 */
public class Actor  extends Vertex
{
	private String firstName;
	private String lastName;
	
	public enum Sex { MALE, FEMALE }
	public enum HierarchyLevel { CEO, PRESIDENT, VICE_PRESIDENT, MANAGING_DIRECTOR, DIRECTOR, MANAGER, LAWYER, TRADER, EMPLOYEE, UNKNOWN }
	
	private Sex sex;
	private HierarchyLevel hierarchyLevel;
	private String jobDescription;
	private boolean isKnown;
	
	// vector of email IDs
	private Vector<Email> emails;
	
	/**
	 * default constructor
	 */
	public Actor(){}
	
	/**
	 * add an email address
	 */
	public void addEmail(Email email)
	{
		if (this.emails == null)
		{
			this.emails = new Vector<Email>();
		}
		
		this.emails.add(email);
	}

	public String getFirstName()
	{
		return firstName;
	}

	public void setFirstName(String firstName)
	{
		this.firstName = firstName;
	}

	public String getLastName()
	{
		return lastName;
	}

	public void setLastName(String lastName)
	{
		this.lastName = lastName;
	}

	public Sex getSex()
	{
		return sex;
	}

	public void setSex(Sex sex)
	{
		this.sex = sex;
	}

	public HierarchyLevel getHierarchyLevel()
	{
		return hierarchyLevel;
	}

	public void setHierarchyLevel(HierarchyLevel hierarchyLevel)
	{
		this.hierarchyLevel = hierarchyLevel;
	}

	public Vector<Email> getEmails()
	{
		return emails;
	}

	public void setEmails(Vector<Email> emails)
	{
		this.emails = emails;
	}

	public String getJobDescription()
	{
		return jobDescription;
	}

	public void setJobDescription(String jobDescription)
	{
		this.jobDescription = jobDescription;
	}
	
	public boolean isKnown()
	{
		return isKnown;
	}

	public void setKnown(boolean isKnown)
	{
		this.isKnown = isKnown;
	}

}
